package me.firstapp.service.bbs;

import me.firstapp.common.utils.NotificationJson;
import me.firstapp.common.utils.Page;
import me.firstapp.module.bbs.BbsNotification;
import me.firstapp.module.bbs.ShopNotification;
import me.firstapp.module.bbs.SystemNotification;

public interface NotificationService {
	/**
	 * 获取用户未读bbs通知数量
	 * 
	 * @param memberId
	 */
	Long findMemberUnReadBbsNotificationCounts(Long memberId, Long apiClientId);

	/**
	 * 分页查询会员bbs通知
	 * 
	 * @param memberId
	 * @param isRead
	 */
	Page<BbsNotification> findMemberBbsNotificationPage(Integer pageNo, Integer pageSize, Long memberId,
			Integer isRead, Long apiClientId);

	/**
	 * 分页查询系统通知
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param memberId
	 * @param isRead
	 */
	Page<SystemNotification> findSysNotificationPage(Integer pageNo, Integer pageSize, Long memberId, Integer isRead, Long apiClientId);

	/**
	 * 分页查询店铺通知
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param memberId
	 * @param isRead
	 */
	Page<ShopNotification> findShopNotificationPage(Integer pageNo, Integer pageSize, Long memberId, Integer isRead, Long apiClientId);

	/**
	 * 获取通知数量
	 * 
	 * @param memberId
	 */
	NotificationJson findUnReadNotificationCounts(Long memberId, Long apiClientId);

	/**
	 * 通知设为已读
	 * 
	 * @param memberId
	 * 
	 * @param type
	 *            通知类型
	 */
	void executeSetNotificationReaded(Long memberId, String type, Long apiClientId);
}
